package com.example.rescuer.zyfypt_926wyr.model;

import com.example.rescuer.zyfypt_926wyr.bean.LoginBean;
import com.example.rescuer.zyfypt_926wyr.common.Common;
import com.example.rescuer.zyfypt_926wyr.iface.LoginListener;
import com.example.rescuer.zyfypt_926wyr.iface.Loginiface;
import com.example.rescuer.zyfypt_926wyr.service.UserService;

import retrofit2.Call;
import retrofit2.Callback;
import retrofit2.Response;
import retrofit2.Retrofit;
import retrofit2.converter.gson.GsonConverterFactory;

/**
 * Created by RESCUER on 2018/5/18.
 */

public class LoginModel implements Loginiface {

    private Retrofit retrofit;

    //构造方法
    public LoginModel(){
        //使用Retrofit接口中的第1小步
        retrofit = new Retrofit.Builder()

                .baseUrl(Common.BASEURL)//主机地址
                .addConverterFactory(GsonConverterFactory.create())//解析方法，此为JSON数据使用GSON转换
                .build();
    }
    //实现Loginface中的方法
    @Override
    public void getLoginResult(String username, String password, final LoginListener loginListener) {
        //第2小步
        UserService service=retrofit.create(UserService.class);
        Call<LoginBean> call=service.login(username,password);
        call.enqueue(new Callback<LoginBean>() {
            @Override
            public void onResponse(Call<LoginBean> call, Response<LoginBean> response) {
                if(response.isSuccessful()&&response.body()!=null)//访问成功
                {
                    loginListener.onResponse(response.body());
                }
                //访问成功，访问数据不成功，例如：数据不正确
                else
                    loginListener.onFail("onResponse fail");

            }

            @Override
            public void onFailure(Call<LoginBean> call, Throwable t) {
                //网络异常
                loginListener.onFail(t.toString());
            }
        });

    }
}
